package com.xiaoshuidi.cloud.module.member.pojo.coupon;

import com.baomidou.mybatisplus.annotation.*;
import com.xiaoshuidi.cloud.framework.tenant.core.db.TenantBaseDO;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * @description 优惠券表entity实体
 * @author Alex
 * @date 2023-03-20 11:16:02
 * @version generator
 */
@Data
@TableName("member_coupon")
public class CouponEntity extends TenantBaseDO implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * id
	 */
	@TableId(type = IdType.ASSIGN_ID)
	private Long id;
	/**
	 * 优惠券类型 1预定优惠|2老带新优惠|3新签约优惠|4 内部员工优惠|5其他优惠
	 */
	private Integer couponType;
	/**
	 * 优惠券名称
	 */
	private String couponName;
	/**
	 * 优惠类型|0 立减|1 折扣
	 */
	private Integer preferentialContentType;
	/**
	 * 优惠金额 或者百分比
	 */
	private BigDecimal marginPreference;
	/**
	 * 老客 优惠类型| 0 立减|1 折扣
	 */
	private Integer preferentialContentTypeOld;
	/**
	 * 老客 优惠金额 或者百分比
	 */
	private BigDecimal marginPreferenceOld;
	/**
	 * 优惠券总库存量  -1 没有限制
	 */
	private Long stock;
	/**
	 * 优惠券剩余量 -1没有限制
	 */
	private Long surplusStock;
	/**
	 * 发券总量
	 */
	private Long sendStock;
	/**
	 * 优惠券使用量
	 */
	private Long couponUsage;
	/**
	 * 使用规则
	 */
	private String useRules;
	/**
	 * 活动开始时间
	 */
	private Date activityStartTime;
	/**
	 * 活动结束时间
	 */
	private Date activityEndTime;
	/**
	 * 活动门店 -1不限制门店
	 */
	private Long activityStore;
	/**
	 * 预定开始时间
	 */
	private Date scheduledStartTime;
	/**
	 * 预定结束时间
	 */
	private Date scheduledEndTime;
	/**
	 * 预定金额
	 */
	private BigDecimal scheduledAmount;
	/**
	 * 最低租赁月份
	 */
	private Integer miniLeaseMonth;
	/**
	 * 最高租赁月份
	 */
	private Integer maxLeaseMonth;
	/**
	 * 签约开始日期
	 */
	private Date signingStartTime;
	/**
	 * 签约结束时间
	 */
	private Date signingEndTime;
	/**
	 * 使用类型 1合同期类有效 2 发券后多少天 3 固定日期
	 */
	private Integer couponUsageTimeType;
	/**
	 * 使用日期 -1 合同期内有效 | 大于0 发券后多少天有效
	 */
	private Integer couponUsageTime;
	/**
	 * 使用开始时间
	 */
	private Date expirationStartTime;
	/**
	 * 使用结束时间
	 */
	private Date expirationEndTime;
	/**
	 * 发券数量限制 -1 不限制|大于0 限制张数
	 */
	private Integer quantityLimit;
	/**
	 * 使用叠加 1与同一优惠可叠加使用|2 与其他活动可叠加使用
	 */
	private String couponUseOverlay;
	/**
	 * 凭证
	 */
	private String fileUrls;
	/**
	 * 状态
	 *    | 1【未提交】：操作有 查看、编辑、删除
	 * 	  |2【审核中】：操作有 查看
	 * 	  |3【审批驳回】：操作有 查看、编辑、删除
	 * 	  |4【未开始】：操作有 查看、终止
	 * 	  |5【进行中】：操作有 查看、数据、终止
	 * 	  |6【已终止】手动终止后，不能继续发券，记录终止时间
	 * 	  |7【已结束】：操作有 查看、数据
	 */
	private Integer couponStatus;

	/**
	 * 创建人名
	 */
	private String createdName;

	/**
	 * 审批流id
	 */
	private String processInstanceId;

	private Date reviewTime;

	/**
	 * 发券方式 0 自动发券|1 手动发券
	 */
	private Integer issuingMethod;
	
}
